package findFinalValue;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class Solution {
    public int findFinalValue(int[] nums, int original) {
//        Arrays.sort(nums);
//        while (find(original,nums)){
//            original*=2;
//        }
//        return original;
//        Arrays.sort(nums);
//        for (int i = 0; i < nums.length; i++) {
//            if(nums[i] == original){
//                original*=2;
//            }
//        }
//        return original;

        Set<Integer> set = new HashSet<>();
        for (int v: nums) {
            set.add(v);
        }
        while (set.contains(original)) {
            original*=2;
        }
        return original;
    }
    // 二分查找
//    private boolean find(int target,int[] nums) {
//        int l = 0;
//        int r = nums.length-1;
//        while (l<=r) {
//            int mid = (l+r)>>1;
//            if(nums[mid]>target){
//                 r = mid-1;
//            }else if(nums[mid]<target) {
//                l = mid+1;
//            }else {
//                return true;
//            }
//        }
//        return false;
//    }
}
